Continuous data protection enables a user to be able to access or restore a previous state with finer time granularity than previously offered by some traditional backup solutions. For example, some traditional backup solutions perform backups at discrete points in time that are separated by hours or even days. The only previous states that a user is able to restore are the states corresponding to those points in time. With continuous data protection, data (e.g., a file or other data associated with a continuously protected device) is continuously protected over a window of time and a user is able to access any prior state within that window. For example, using some continuous data protection systems a user can access or restore saved states that are single writes apart.
Some continuous data protection systems are configured to store a “snapshot” or baseline that represents the state of a data set at the beginning of a continuous data protection window. As time goes on and/or new previous version data is generated, this snapshot or baseline is updated, e.g., by overwriting currently stored data with newer data in appropriate blocks in a snapshot storage area in storage. In some cases, if a user is accessing or restoring a prior state, it would be undesirable if this access or restore failed or resulted in an error as a result of an incomplete or improperly performed update to the snapshot. It would be desirable if a snapshot could be updated in a robust manner that avoided or reduced the likelihood of failures, errors, or inconsistencies.